"use strict";
/*!-----------------------------------------------------------------------------
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * Version: 0.34.1(547870b6881302c5b4ff32173c16d06009e3588f)
 * Released under the MIT license
 * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
 *-----------------------------------------------------------------------------*/
define("vs/basic-languages/abap/abap", ["require"], require => {
	var moduleExports = (() => {
		var __defProp = Object.defineProperty;
		var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
		var __getOwnPropNames = Object.getOwnPropertyNames;
		var __hasOwnProp = Object.prototype.hasOwnProperty;
		var __export = (target, all) => {
			for (var name in all)
				__defProp(target, name, { get: all[name], enumerable: true });
		};
		var __copyProps = (to, from, except, desc) => {
			if ((from && typeof from === "object") || typeof from === "function") {
				for (let key of __getOwnPropNames(from))
					if (!__hasOwnProp.call(to, key) && key !== except)
						__defProp(to, key, {
							get: () => from[key],
							enumerable:
								!(desc = __getOwnPropDesc(from, key)) || desc.enumerable
						});
			}
			return to;
		};
		var __toCommonJS = mod =>
			__copyProps(__defProp({}, "__esModule", { value: true }), mod);

		// src/basic-languages/abap/abap.ts
		var abap_exports = {};
		__export(abap_exports, {
			conf: () => conf,
			language: () => language
		});
		var conf = {
			comments: {
				lineComment: "*"
			},
			brackets: [
				["[", "]"],
				["(", ")"]
			]
		};
		var language = {
			defaultToken: "invalid",
			ignoreCase: true,
			tokenPostfix: ".abap",
			keywords: [
				"abap-source",
				"abbreviated",
				"abstract",
				"accept",
				"accepting",
				"according",
				"activation",
				"actual",
				"add",
				"add-corresponding",
				"adjacent",
				"after",
				"alias",
				"aliases",
				"align",
				"all",
				"allocate",
				"alpha",
				"analysis",
				"analyzer",
				"and",
				"append",
				"appendage",
				"appending",
				"application",
				"archive",
				"area",
				"arithmetic",
				"as",
				"ascending",
				"aspect",
				"assert",
				"assign",
				"assigned",
				"assigning",
				"association",
				"asynchronous",
				"at",
				"attributes",
				"authority",
				"authority-check",
				"avg",
				"back",
				"background",
				"backup",
				"backward",
				"badi",
				"base",
				"before",
				"begin",
				"between",
				"big",
				"binary",
				"bintohex",
				"bit",
				"black",
				"blank",
				"blanks",
				"blob",
				"block",
				"blocks",
				"blue",
				"bound",
				"boundaries",
				"bounds",
				"boxed",
				"break-point",
				"buffer",
				"by",
				"bypassing",
				"byte",
				"byte-order",
				"call",
				"calling",
				"case",
				"cast",
				"casting",
				"catch",
				"center",
				"centered",
				"chain",
				"chain-input",
				"chain-request",
				"change",
				"changing",
				"channels",
				"character",
				"char-to-hex",
				"check",
				"checkbox",
				"ci_",
				"circular",
				"class",
				"class-coding",
				"class-data",
				"class-events",
				"class-methods",
				"class-pool",
				"cleanup",
				"clear",
				"client",
				"clob",
				"clock",
				"close",
				"coalesce",
				"code",
				"coding",
				"col_background",
				"col_group",
				"col_heading",
				"col_key",
				"col_negative",
				"col_normal",
				"col_positive",
				"col_total",
				"collect",
				"color",
				"column",
				"columns",
				"comment",
				"comments",
				"commit",
				"common",
				"communication",
				"comparing",
				"component",
				"components",
				"compression",
				"compute",
				"concat",
				"concat_with_space",
				"concatenate",
				"cond",
				"condense",
				"condition",
				"connect",
				"connection",
				"constants",
				"context",
				"contexts",
				"continue",
				"control",
				"controls",
				"conv",
				"conversion",
				"convert",
				"copies",
				"copy",
				"corresponding",
				"country",
				"cover",
				"cpi",
				"create",
				"creating",
				"critical",
				"currency",
				"currency_conversion",
				"current",
				"cursor",
				"cursor-selection",
				"customer",
				"customer-function",
				"dangerous",
				"data",
				"database",
				"datainfo",
				"dataset",
				"date",
				"dats_add_days",
				"dats_add_months",
				"dats_days_between",
				"dats_is_valid",
				"daylight",
				"dd/mm/yy",
				"dd/mm/yyyy",
				"ddmmyy",
				"deallocate",
				"decimal_shift",
				"decimals",
				"declarations",
				"deep",
				"default",
				"deferred",
				"define",
				"defining",
				"definition",
				"delete",
				"deleting",
				"demand",
				"department",
				"descending",
				"describe",
				"destination",
				"detail",
				"dialog",
				"directory",
				"disconnect",
				"display",
				"display-mode",
				"distinct",
				"divide",
				"divide-corresponding",
				"division",
				"do",
				"dummy",
				"duplicate",
				"duplicates",
				"duration",
				"during",
				"dynamic",
				"dynpro",
				"edit",
				"editor-call",
				"else",
				"elseif",
				"empty",
				"enabled",
				"enabling",
				"encoding",
				"end",
				"endat",
				"endcase",
				"endcatch",
				"endchain",
				"endclass",
				"enddo",
				"endenhancement",
				"end-enhancement-section",
				"endexec",
				"endform",
				"endfunction",
				"endian",
				"endif",
				"ending",
				"endinterface",
				"end-lines",
				"endloop",
				"endmethod",
				"endmodule",
				"end-of-definition",
				"end-of-editing",
				"end-of-file",
				"end-of-page",
				"end-of-selection",
				"endon",
				"endprovide",
				"endselect",
				"end-test-injection",
				"end-test-seam",
				"endtry",
				"endwhile",
				"endwith",
				"engineering",
				"enhancement",
				"enhancement-point",
				"enhancements",
				"enhancement-section",
				"entries",
				"entry",
				"enum",
				"environment",
				"equiv",
				"errormessage",
				"errors",
				"escaping",
				"event",
				"events",
				"exact",
				"except",
				"exception",
				"exceptions",
				"exception-table",
				"exclude",
				"excluding",
				"exec",
				"execute",
				"exists",
				"exit",
				"exit-command",
				"expand",
				"expanding",
				"expiration",
				"explicit",
				"exponent",
				"export",
				"exporting",
				"extend",
				"extended",
				"extension",
				"extract",
				"fail",
				"fetch",
				"field",
				"field-groups",
				"fields",
				"field-symbol",
				"field-symbols",
				"file",
				"filter",
				"filters",
				"filter-table",
				"final",
				"find",
				"first",
				"first-line",
				"fixed-point",
				"fkeq",
				"fkge",
				"flush",
				"font",
				"for",
				"form",
				"format",
				"forward",
				"found",
				"frame",
				"frames",
				"free",
				"friends",
				"from",
				"function",
				"functionality",
				"function-pool",
				"further",
				"gaps",
				"generate",
				"get",
				"giving",
				"gkeq",
				"gkge",
				"global",
				"grant",
				"green",
				"group",
				"groups",
				"handle",
				"handler",
				"harmless",
				"hashed",
				"having",
				"hdb",
				"header",
				"headers",
				"heading",
				"head-lines",
				"help-id",
				"help-request",
				"hextobin",
				"hide",
				"high",
				"hint",
				"hold",
				"hotspot",
				"icon",
				"id",
				"identification",
				"identifier",
				"ids",
				"if",
				"ignore",
				"ignoring",
				"immediately",
				"implementation",
				"implementations",
				"implemented",
				"implicit",
				"import",
				"importing",
				"in",
				"inactive",
				"incl",
				"include",
				"includes",
				"including",
				"increment",
				"index",
				"index-line",
				"infotypes",
				"inheriting",
				"init",
				"initial",
				"initialization",
				"inner",
				"inout",
				"input",
				"insert",
				"instance",
				"instances",
				"instr",
				"intensified",
				"interface",
				"interface-pool",
				"interfaces",
				"internal",
				"intervals",
				"into",
				"inverse",
				"inverted-date",
				"is",
				"iso",
				"job",
				"join",
				"keep",
				"keeping",
				"kernel",
				"key",
				"keys",
				"keywords",
				"kind",
				"language",
				"last",
				"late",
				"layout",
				"leading",
				"leave",
				"left",
				"left-justified",
				"leftplus",
				"leftspace",
				"legacy",
				"length",
				"let",
				"level",
				"levels",
				"like",
				"line",
				"lines",
				"line-count",
				"linefeed",
				"line-selection",
				"line-size",
				"list",
				"listbox",
				"list-processing",
				"little",
				"llang",
				"load",
				"load-of-program",
				"lob",
				"local",
				"locale",
				"locator",
				"logfile",
				"logical",
				"log-point",
				"long",
				"loop",
				"low",
				"lower",
				"lpad",
				"lpi",
				"ltrim",
				"mail",
				"main",
				"major-id",
				"mapping",
				"margin",
				"mark",
				"mask",
				"match",
				"matchcode",
				"max",
				"maximum",
				"medium",
				"members",
				"memory",
				"mesh",
				"message",
				"message-id",
				"messages",
				"messaging",
				"method",
				"methods",
				"min",
				"minimum",
				"minor-id",
				"mm/dd/yy",
				"mm/dd/yyyy",
				"mmddyy",
				"mode",
				"modif",
				"modifier",
				"modify",
				"module",
				"move",
				"move-corresponding",
				"multiply",
				"multiply-corresponding",
				"name",
				"nametab",
				"native",
				"nested",
				"nesting",
				"new",
				"new-line",
				"new-page",
				"new-section",
				"next",
				"no",
				"no-display",
				"no-extension",
				"no-gap",
				"no-gaps",
				"no-grouping",
				"no-heading",
				"no-scrolling",
				"no-sign",
				"no-title",
				"no-topofpage",
				"no-zero",
				"node",
				"nodes",
				"non-unicode",
				"non-unique",
				"not",
				"null",
				"number",
				"object",
				"objects",
				"obligatory",
				"occurrence",
				"occurrences",
				"occurs",
				"of",
				"off",
				"offset",
				"ole",
				"on",
				"only",
				"open",
				"option",
				"optional",
				"options",
				"or",
				"order",
				"other",
				"others",
				"out",
				"outer",
				"output",
				"output-length",
				"overflow",
				"overlay",
				"pack",
				"package",
				"pad",
				"padding",
				"page",
				"pages",
				"parameter",
				"parameters",
				"parameter-table",
				"part",
				"partially",
				"pattern",
				"percentage",
				"perform",
				"performing",
				"person",
				"pf1",
				"pf10",
				"pf11",
				"pf12",
				"pf13",
				"pf14",
				"pf15",
				"pf2",
				"pf3",
				"pf4",
				"pf5",
				"pf6",
				"pf7",
				"pf8",
				"pf9",
				"pf-status",
				"pink",
				"places",
				"pool",
				"pos_high",
				"pos_low",
				"position",
				"pragmas",
				"precompiled",
				"preferred",
				"preserving",
				"primary",
				"print",
				"print-control",
				"priority",
				"private",
				"procedure",
				"process",
				"program",
				"property",
				"protected",
				"provide",
				"public",
				"push",
				"pushbutton",
				"put",
				"queue-only",
				"quickinfo",
				"radiobutton",
				"raise",
				"raising",
				"range",
				"ranges",
				"read",
				"reader",
				"read-only",
				"receive",
				"received",
				"receiver",
				"receiving",
				"red",
				"redefinition",
				"reduce",
				"reduced",
				"ref",
				"reference",
				"refresh",
				"regex",
				"reject",
				"remote",
				"renaming",
				"replace",
				"replacement",
				"replacing",
				"report",
				"request",
				"requested",
				"reserve",
				"reset",
				"resolution",
				"respecting",
				"responsible",
				"result",
				"results",
				"resumable",
				"resume",
				"retry",
				"return",
				"returncode",
				"returning",
				"returns",
				"right",
				"right-justified",
				"rightplus",
				"rightspace",
				"risk",
				"rmc_communication_failure",
				"rmc_invalid_status",
				"rmc_system_failure",
				"role",
				"rollback",
				"rows",
				"rpad",
				"rtrim",
				"run",
				"sap",
				"sap-spool",
				"saving",
				"scale_preserving",
				"scale_preserving_scientific",
				"scan",
				"scientific",
				"scientific_with_leading_zero",
				"scroll",
				"scroll-boundary",
				"scrolling",
				"search",
				"secondary",
				"seconds",
				"section",
				"select",
				"selection",
				"selections",
				"selection-screen",
				"selection-set",
				"selection-sets",
				"selection-table",
				"select-options",
				"send",
				"separate",
				"separated",
				"set",
				"shared",
				"shift",
				"short",
				"shortdump-id",
				"sign_as_postfix",
				"single",
				"size",
				"skip",
				"skipping",
				"smart",
				"some",
				"sort",
				"sortable",
				"sorted",
				"source",
				"specified",
				"split",
				"spool",
				"spots",
				"sql",
				"sqlscript",
				"stable",
				"stamp",
				"standard",
				"starting",
				"start-of-editing",
				"start-of-selection",
				"state",
				"statement",
				"statements",
				"static",
				"statics",
				"statusinfo",
				"step-loop",
				"stop",
				"structure",
				"structures",
				"style",
				"subkey",
				"submatches",
				"submit",
				"subroutine",
				"subscreen",
				"subtract",
				"subtract-corresponding",
				"suffix",
				"sum",
				"summary",
				"summing",
				"supplied",
				"supply",
				"suppress",
				"switch",
				"switchstates",
				"symbol",
				"syncpoints",
				"syntax",
				"syntax-check",
				"syntax-trace",
				"system-call",
				"system-exceptions",
				"system-exit",
				"tab",
				"tabbed",
				"table",
				"tables",
				"tableview",
				"tabstrip",
				"target",
				"task",
				"tasks",
				"test",
				"testing",
				"test-injection",
				"test-seam",
				"text",
				"textpool",
				"then",
				"throw",
				"time",
				"times",
				"timestamp",
				"timezone",
				"tims_is_valid",
				"title",
				"titlebar",
				"title-lines",
				"to",
				"tokenization",
				"tokens",
				"top-lines",
				"top-of-page",
				"trace-file",
				"trace-table",
				"trailing",
				"transaction",
				"transfer",
				"transformation",
				"translate",
				"transporting",
				"trmac",
				"truncate",
				"truncation",
				"try",
				"tstmp_add_seconds",
				"tstmp_current_utctimestamp",
				"tstmp_is_valid",
				"tstmp_seconds_between",
				"type",
				"type-pool",
				"type-pools",
				"types",
				"uline",
				"unassign",
				"under",
				"unicode",
				"union",
				"unique",
				"unit_conversion",
				"unix",
				"unpack",
				"until",
				"unwind",
				"up",
				"update",
				"upper",
				"user",
				"user-command",
				"using",
				"utf-8",
				"valid",
				"value",
				"value-request",
				"values",
				"vary",
				"varying",
				"verification-message",
				"version",
				"via",
				"view",
				"visible",
				"wait",
				"warning",
				"when",
				"whenever",
				"where",
				"while",
				"width",
				"window",
				"windows",
				"with",
				"with-heading",
				"without",
				"with-title",
				"word",
				"work",
				"write",
				"writer",
				"xml",
				"xsd",
				"yellow",
				"yes",
				"yymmdd",
				"zero",
				"zone",
				"abap_system_timezone",
				"abap_user_timezone",
				"access",
				"action",
				"adabas",
				"adjust_numbers",
				"allow_precision_loss",
				"allowed",
				"amdp",
				"applicationuser",
				"as_geo_json",
				"as400",
				"associations",
				"balance",
				"behavior",
				"breakup",
				"bulk",
				"cds",
				"cds_client",
				"check_before_save",
				"child",
				"clients",
				"corr",
				"corr_spearman",
				"cross",
				"cycles",
				"datn_add_days",
				"datn_add_months",
				"datn_days_between",
				"dats_from_datn",
				"dats_tims_to_tstmp",
				"dats_to_datn",
				"db2",
				"db6",
				"ddl",
				"dense_rank",
				"depth",
				"deterministic",
				"discarding",
				"entities",
				"entity",
				"error",
				"failed",
				"finalize",
				"first_value",
				"fltp_to_dec",
				"following",
				"fractional",
				"full",
				"graph",
				"grouping",
				"hierarchy",
				"hierarchy_ancestors",
				"hierarchy_ancestors_aggregate",
				"hierarchy_descendants",
				"hierarchy_descendants_aggregate",
				"hierarchy_siblings",
				"incremental",
				"indicators",
				"lag",
				"last_value",
				"lead",
				"leaves",
				"like_regexpr",
				"link",
				"locale_sap",
				"lock",
				"locks",
				"many",
				"mapped",
				"matched",
				"measures",
				"median",
				"mssqlnt",
				"multiple",
				"nodetype",
				"ntile",
				"nulls",
				"occurrences_regexpr",
				"one",
				"operations",
				"oracle",
				"orphans",
				"over",
				"parent",
				"parents",
				"partition",
				"pcre",
				"period",
				"pfcg_mapping",
				"preceding",
				"privileged",
				"product",
				"projection",
				"rank",
				"redirected",
				"replace_regexpr",
				"reported",
				"response",
				"responses",
				"root",
				"row",
				"row_number",
				"sap_system_date",
				"save",
				"schema",
				"session",
				"sets",
				"shortdump",
				"siblings",
				"spantree",
				"start",
				"stddev",
				"string_agg",
				"subtotal",
				"sybase",
				"tims_from_timn",
				"tims_to_timn",
				"to_blob",
				"to_clob",
				"total",
				"trace-entry",
				"tstmp_to_dats",
				"tstmp_to_dst",
				"tstmp_to_tims",
				"tstmpl_from_utcl",
				"tstmpl_to_utcl",
				"unbounded",
				"utcl_add_seconds",
				"utcl_current",
				"utcl_seconds_between",
				"uuid",
				"var",
				"verbatim"
			],
			builtinFunctions: [
				"abs",
				"acos",
				"asin",
				"atan",
				"bit-set",
				"boolc",
				"boolx",
				"ceil",
				"char_off",
				"charlen",
				"cmax",
				"cmin",
				"concat_lines_of",
				"contains",
				"contains_any_not_of",
				"contains_any_of",
				"cos",
				"cosh",
				"count",
				"count_any_not_of",
				"count_any_of",
				"dbmaxlen",
				"distance",
				"escape",
				"exp",
				"find_any_not_of",
				"find_any_of",
				"find_end",
				"floor",
				"frac",
				"from_mixed",
				"ipow",
				"line_exists",
				"line_index",
				"log",
				"log10",
				"matches",
				"nmax",
				"nmin",
				"numofchar",
				"repeat",
				"rescale",
				"reverse",
				"round",
				"segment",
				"shift_left",
				"shift_right",
				"sign",
				"sin",
				"sinh",
				"sqrt",
				"strlen",
				"substring",
				"substring_after",
				"substring_before",
				"substring_from",
				"substring_to",
				"tan",
				"tanh",
				"to_lower",
				"to_mixed",
				"to_upper",
				"trunc",
				"utclong_add",
				"utclong_current",
				"utclong_diff",
				"xsdbool",
				"xstrlen"
			],
			typeKeywords: [
				"b",
				"c",
				"d",
				"decfloat16",
				"decfloat34",
				"f",
				"i",
				"int8",
				"n",
				"p",
				"s",
				"string",
				"t",
				"utclong",
				"x",
				"xstring",
				"any",
				"clike",
				"csequence",
				"decfloat",
				"numeric",
				"simple",
				"xsequence",
				"accp",
				"char",
				"clnt",
				"cuky",
				"curr",
				"datn",
				"dats",
				"d16d",
				"d16n",
				"d16r",
				"d34d",
				"d34n",
				"d34r",
				"dec",
				"df16_dec",
				"df16_raw",
				"df34_dec",
				"df34_raw",
				"fltp",
				"geom_ewkb",
				"int1",
				"int2",
				"int4",
				"lang",
				"lchr",
				"lraw",
				"numc",
				"quan",
				"raw",
				"rawstring",
				"sstring",
				"timn",
				"tims",
				"unit",
				"utcl",
				"df16_scl",
				"df34_scl",
				"prec",
				"varc",
				"abap_bool",
				"abap_false",
				"abap_true",
				"abap_undefined",
				"me",
				"screen",
				"space",
				"super",
				"sy",
				"syst",
				"table_line",
				"*sys*"
			],
			builtinMethods: ["class_constructor", "constructor"],
			derivedTypes: [
				"%CID",
				"%CID_REF",
				"%CONTROL",
				"%DATA",
				"%ELEMENT",
				"%FAIL",
				"%KEY",
				"%MSG",
				"%PARAM",
				"%PID",
				"%PID_ASSOC",
				"%PID_PARENT",
				"%_HINTS"
			],
			cdsLanguage: [
				"@AbapAnnotation",
				"@AbapCatalog",
				"@AccessControl",
				"@API",
				"@ClientDependent",
				"@ClientHandling",
				"@CompatibilityContract",
				"@DataAging",
				"@EndUserText",
				"@Environment",
				"@LanguageDependency",
				"@MappingRole",
				"@Metadata",
				"@MetadataExtension",
				"@ObjectModel",
				"@Scope",
				"@Semantics",
				"$EXTENSION",
				"$SELF"
			],
			selectors: ["->", "->*", "=>", "~", "~*"],
			operators: [
				" +",
				" -",
				"/",
				"*",
				"**",
				"div",
				"mod",
				"=",
				"#",
				"@",
				"+=",
				"-=",
				"*=",
				"/=",
				"**=",
				"&&=",
				"?=",
				"&",
				"&&",
				"bit-and",
				"bit-not",
				"bit-or",
				"bit-xor",
				"m",
				"o",
				"z",
				"<",
				" >",
				"<=",
				">=",
				"<>",
				"><",
				"=<",
				"=>",
				"bt",
				"byte-ca",
				"byte-cn",
				"byte-co",
				"byte-cs",
				"byte-na",
				"byte-ns",
				"ca",
				"cn",
				"co",
				"cp",
				"cs",
				"eq",
				"ge",
				"gt",
				"le",
				"lt",
				"na",
				"nb",
				"ne",
				"np",
				"ns",
				"*/",
				"*:",
				"--",
				"/*",
				"//"
			],
			symbols: /[=><!~?&+\-*\/\^%#@]+/,
			tokenizer: {
				root: [
					[
						/[a-z_\/$%@]([\w\/$%]|-(?!>))*/,
						{
							cases: {
								"@typeKeywords": "type",
								"@keywords": "keyword",
								"@cdsLanguage": "annotation",
								"@derivedTypes": "type",
								"@builtinFunctions": "type",
								"@builtinMethods": "type",
								"@operators": "key",
								"@default": "identifier"
							}
						}
					],
					[/<[\w]+>/, "identifier"],
					[/##[\w|_]+/, "comment"],
					{ include: "@whitespace" },
					[/[:,.]/, "delimiter"],
					[/[{}()\[\]]/, "@brackets"],
					[
						/@symbols/,
						{
							cases: {
								"@selectors": "tag",
								"@operators": "key",
								"@default": ""
							}
						}
					],
					[/'/, { token: "string", bracket: "@open", next: "@stringquote" }],
					[/`/, { token: "string", bracket: "@open", next: "@stringping" }],
					[
						/\|/,
						{ token: "string", bracket: "@open", next: "@stringtemplate" }
					],
					[/\d+/, "number"]
				],
				stringtemplate: [
					[/[^\\\|]+/, "string"],
					[/\\\|/, "string"],
					[/\|/, { token: "string", bracket: "@close", next: "@pop" }]
				],
				stringping: [
					[/[^\\`]+/, "string"],
					[/`/, { token: "string", bracket: "@close", next: "@pop" }]
				],
				stringquote: [
					[/[^\\']+/, "string"],
					[/'/, { token: "string", bracket: "@close", next: "@pop" }]
				],
				whitespace: [
					[/[ \t\r\n]+/, ""],
					[/^\*.*$/, "comment"],
					[/\".*$/, "comment"]
				]
			}
		};
		return __toCommonJS(abap_exports);
	})();
	return moduleExports;
});
